package view.component.button
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;

import framework.proxy.ComponentProxy;

/**
 * SwitchButtonProxy
 * @author jliang
 *
 */
public class SwitchButtonProxy extends ComponentProxy
{
    //==========================================================================
    //  Class constants
    //==========================================================================
    public static const HIDE:String = "hide";
    
    public static const SHOW:String = "show";
    //==========================================================================
    //  Constructor
    //==========================================================================
    public function SwitchButtonProxy()
    {
        super();
    }
    //==========================================================================
    //  Properties
    //==========================================================================
    public function set mode(value:String):void
    {
        skin.gotoAndStop(value);
    }
    
    public function get mode():String
    {
        return skin.currentFrameLabel;
    }
    
    public var switchHandler:Function;
    //==========================================================================
    //  Overridden methods: ComponentProxy
    //==========================================================================
    override public function parse(target:MovieClip):void
    {
        super.parse(target);
        
        skin.buttonMode = true;
        skin.gotoAndStop(HIDE);
        skin.addEventListener(MouseEvent.CLICK, onClickToSwitchHandler);
    }
    
    override public function dispose():void
    {
        if (skin) skin.removeEventListener(MouseEvent.CLICK, onClickToSwitchHandler);
        super.dispose();
    }
    //==========================================================================
    //  Event handlers
    //==========================================================================
    protected function onClickToSwitchHandler(event:Event):void
    {
        if (switchHandler != null)
        {
            switchHandler(mode);
        }
        mode = (mode == HIDE ? SHOW : HIDE);
    }
}
}



